Un árbol (Tree) es una estructura de datos jerárquica no lineal que simula arquitecturas del mundo real (como sistemas de archivos o árboles genealógicos). A diferencia del orden lineal de listas, pilas y colas, la esencia de un árbol reside en sunaturaleza jerárquica (Hierarchical)ynaturaleza recursiva (Recursive).
1. Anatomía de la forma del árbol
- nodo (Node): unidad básica que contiene una clave (Key) y un contenido útil.
- nodo raíz (Root): el único nodo sin aristas entrantes, que constituye el punto de inicio del árbol.
- arista (Edge): el único camino que conecta nodos, representando relaciones entre padres e hijos.
- nodo hoja (Leaf): el extremo final sin nodos hijos, que representa el límite natural para la recursión.
2. Doble perspectiva definida recursivamente
Podemos entender un árbol desde dos perspectivas:
Perspectiva gráfica
Un grafo acíclico y conexo compuesto por nodos y aristas, donde cada nodo (excepto la raíz) tiene exactamente un padre.
Un grafo acíclico y conexo compuesto por nodos y aristas, donde cada nodo (excepto la raíz) tiene exactamente un padre.
Perspectiva recursiva
Un árbol es vacío, o bien está compuesto por un nodo raíz y cero o más subárboles (Subtree).
Un árbol es vacío, o bien está compuesto por un nodo raíz y cero o más subárboles (Subtree).
Ejemplo del árbol DOM en HTML
En HTML,
<html> es la raíz,<body> y <head> son nodos hermanos. Cada etiqueta junto con su contenido anidado forma un subárbol. Esta estructura permite mover todo <ul> y sus <li> sin romper su jerarquía interna. <ul> y todos sus <li> sin alterar su jerarquía interna.